package com.wx.entity;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.wx.common.BaseEntity;
import com.wx.convert.AuditStatusConverter;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.persistence.Column;
import javax.persistence.Table;
import javax.persistence.Transient;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.io.Serializable;

/**
 * <p>Title:      SysNurse. </p>
 * <p>Description 护士信息表 </p>
 * <p>Copyright: Copyright (c) 2016</p>
 * <p>Company:    医百科技有限公司 </p>
 *
 * @author         yangwensheng@100doc.com.cn
 * @since      2021-03-22 10:51:46
 */
@Table(name = "sys_nurse")
@Data
@ApiModel(value = "SysNurse")
public class SysNurse extends BaseEntity implements Serializable {

	private static final long serialVersionUID = 1L;

	/**
	 * 真实姓名
	 */
	@Column(name = "real_name")
	@ApiModelProperty(value = "真实姓名")
	@NotEmpty(message = "姓名不能为空")
	@ExcelProperty(value = "姓名", index = 0)
	@ColumnWidth(value = 25)
	private String realName;
	/**
	 * 性别 1:男 2:女
	 */
	@Column(name = "sex")
	@ApiModelProperty(value = "性别 1:男 2:女")
	@NotNull(message = "性别不能为空")
	@ExcelIgnore
	private Integer sex;

	/**
	 * 电话
	 */
	@Column(name = "phone")
	@ApiModelProperty(value = "手机号")
	@NotEmpty(message = "手机号不能为空")
	@ExcelProperty(value = "手机号", index = 1)
	@ColumnWidth(value = 25)
	private String phone;
	/**
	 * 证件类型 1：身份证 2：护照
	 */
	@Column(name = "certificates_type")
	@ApiModelProperty(value = "证件类型 1：身份证 2：护照")
	@ExcelIgnore
	private Integer certificatesType;
	/**
	 * 身份证号
	 */
	@Column(name = "id_num")
	@ApiModelProperty(value = "身份证号")
	@NotEmpty(message = "身份证号不能为空")
	@ExcelIgnore
	private String idNum;
	/**
	 * 邮箱
	 */
	@Column(name = "email")
	@ApiModelProperty(value = "邮箱")
	@ExcelProperty(value = "邮箱", index = 3)
	@ColumnWidth(value = 25)
	private String email;
	/**
	 * openId
	 */
	@Column(name = "open_id")
	@ApiModelProperty(value = "openId")
	@ExcelIgnore
	private String openId;
	/**
	 * 审核状态   0: 未审核 1：审核通过 2：未通过 3：暂停使用
	 */
	@Column(name = "audit_status")
	@ApiModelProperty(value = "审核状态   0: 未审核 1：审核通过 2：未通过 3：暂停使用")
	@ExcelProperty(value = "审核状态", index = 5, converter = AuditStatusConverter.class)
	@ColumnWidth(value = 25)
	private Integer auditStatus;
	/**
	 * 协议签署状态   0：未签署 1：已签署 
	 */
	@Column(name = "agreement")
	@ApiModelProperty(value = "协议签署状态   0：未签署 1：已签署 ")
	@ExcelIgnore
	private Integer agreement;
	/**
	 * 证件照正面
	 */
	@Column(name = "id_card_front")
	@ApiModelProperty(value = "证件照正面")
	@ExcelIgnore
	private String idCardFront;
	/**
	 * 证件照背面
	 */
	@Column(name = "id_card_back")
	@ApiModelProperty(value = "证件照背面")
	@ExcelIgnore
	private String idCardBack;

	/**
	 * 省份
	 */
	@Column(name = "province_code")
	@ApiModelProperty(value = "省份")
	@ExcelIgnore
	private String provinceCode;
	/**
	 * 城市
	 */
	@Column(name = "city_code")
	@ApiModelProperty(value = "城市")
	@ExcelIgnore
	private String cityCode;
	/**
	 * 区域
	 */
	@Column(name = "area_code")
	@ApiModelProperty(value = "区域")
	@ExcelIgnore
	private String areaCode;

	/**
	 * 省份
	 */
	@ApiModelProperty(value = "省份")
	@Transient
	@ExcelIgnore
	private String provinceName;
	/**
	 * 城市
	 */
	@ApiModelProperty(value = "城市")
	@Transient
	@ExcelProperty(value = "城市", index = 2)
	@ColumnWidth(value = 25)
	private String cityName;

	/**
	 * 区域名称
	 */
	@ApiModelProperty(value = "区域名称")
	@Transient
	@ExcelIgnore
	private String areaName;


	@ApiModelProperty(value = "头像")
	@Transient
	@ExcelIgnore
	private String headImgUrl;

	@ApiModelProperty(value = "协议编码")
	@Transient
	@ExcelIgnore
	private String agreementCode;


	@ApiModelProperty(value = "协议内容下载的url")
	@Transient
	@ExcelIgnore
	private String fileUrl;


	@ApiModelProperty(value = "所管辖的范围")
	@Transient
	@ExcelProperty(value = "管理范围", index = 4)
	@ColumnWidth(value = 25)
	private String rangeName;


}
